<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<!-- Copyright 1997 The Open Group, All Rights Reserved -->
<title>mkfifo</title>
</head><body bgcolor=white>
<center>
<font size=2>
The Single UNIX &reg; Specification, Version 2<br>
Copyright &copy; 1997 The Open Group

</font></center><hr size=2 noshade>
<h4><a name = "tag_000_007_634">&nbsp;</a>NAME</h4><blockquote>
mkfifo - make a FIFO special file
</blockquote><h4><a name = "tag_000_007_635">&nbsp;</a>SYNOPSIS</h4><blockquote>
<pre><code>

#include &lt;<a href="systypes.h.html">sys/types.h</a>&gt;
#include &lt;<a href="sysstat.h.html">sys/stat.h</a>&gt;

int mkfifo(const char *<i>path</i>, mode_t <i>mode</i>);
</code>
</pre>
</blockquote><h4><a name = "tag_000_007_636">&nbsp;</a>DESCRIPTION</h4><blockquote>
The
<i>mkfifo()</i>
function creates a new FIFO
special file named by the pathname pointed to by
<i>path</i>.
The file permission bits of the new FIFO are initialised from
<i>mode</i>.
The file permission bits of the
<i>mode</i>
argument are modified by the process' file creation mask.
<p>
When bits in <i>mode</i> other than the file permission bits are set,
the effect is implementation-dependent.
<p>
The FIFO's user ID will be set to the process' effective user ID.
The FIFO's group ID will be set to the group ID of the parent directory
or to the effective group ID of the process.
<p>
Upon successful completion,
<i>mkfifo()</i>
will mark for update the
<i>st_atime</i>,
<i>st_ctime</i>
and
<i>st_mtime</i>
fields of the file.
Also, the
<i>st_ctime</i>
and
<i>st_mtime</i>
fields of the directory that contains the new entry
are marked for update.
</blockquote><h4><a name = "tag_000_007_637">&nbsp;</a>RETURN VALUE</h4><blockquote>
Upon successful completion, 0 is returned.
Otherwise, -1 is returned, no FIFO is created and
<i>errno</i>
is set to indicate the error.
</blockquote><h4><a name = "tag_000_007_638">&nbsp;</a>ERRORS</h4><blockquote>
The
<i>mkfifo()</i>
function will fail if:
<dl compact>

<dt>[EACCES]<dd>
A component of the path prefix denies search permission, or write
permission is denied on the parent directory of the FIFO to be
created.

<dt>[EEXIST]<dd>
The named file already exists.

<dt>[ELOOP]<dd>
Too many symbolic links were encountered in resolving <i>path</i>.

<dt>[ENAMETOOLONG]<dd>

The length of the
<i>path</i>
argument exceeds {PATH_MAX} or a pathname component is longer than
{NAME_MAX}.

<dt>[ENOENT]<dd>
A component of the path prefix specified by <i>path</i> does not name an
existing directory or <i>path</i> is an empty string.

<dt>[ENOSPC]<dd>
The directory that would contain the new file cannot be
extended or the file system is out of file-allocation resources.

<dt>[ENOTDIR]<dd>
A component of the path prefix is not a directory.

<dt>[EROFS]<dd>
The named file resides on a read-only file system.

</dl>
<p>
The
<i>mkfifo()</i>
function may fail if:
<dl compact>

<dt>[ENAMETOOLONG]<dd>

Pathname resolution of a symbolic link produced an intermediate result whose
length exceeds {PATH_MAX}.

</dl>
</blockquote><h4><a name = "tag_000_007_639">&nbsp;</a>EXAMPLES</h4><blockquote>
None.
</blockquote><h4><a name = "tag_000_007_640">&nbsp;</a>APPLICATION USAGE</h4><blockquote>
None.
</blockquote><h4><a name = "tag_000_007_641">&nbsp;</a>SEE ALSO</h4><blockquote>
<i><a href="umask.html">umask()</a></i>,
<i><a href="sysstat.h.html">&lt;sys/stat.h&gt;</a></i>,
<i><a href="systypes.h.html">&lt;sys/types.h&gt;</a></i>.
</blockquote><h4>DERIVATION</h4><blockquote>
Derived from the POSIX.1-1988 standard.
</blockquote><hr size=2 noshade>
<center><font size=2>
UNIX &reg; is a registered Trademark of The Open Group.<br>
Copyright &copy; 1997 The Open Group
<br> [ <a href="../index.html">Main Index</a> | <a href="../xshix.html">XSH</a> | <a href="../xcuix.html">XCU</a> | <a href="../xbdix.html">XBD</a> | <a href="../cursesix.html">XCURSES</a> | <a href="../xnsix.html">XNS</a> ]

</font></center><hr size=2 noshade>
</body></html>

